<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <title>tiptap Table 表格扩展 - itxst.com</title>
    <meta name="keywords" content="tiptap Table 表格扩展" />
    <meta name="description" content="如果你想在 tiptap 编辑器设置显示表格，你可以是使用 table 扩展，它可以渲染成 html 的 table 标签，他可以合并单元格、添加删除行等等。" />
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
    <meta http-equiv="Content-Language" content="zh-CN">
    <link rel="shortcut icon" href="/img/favicon.ico" type="image/x-icon" />
    <link href="/css/zt.css?ver=1.6.6" rel="stylesheet" type="text/css" media="all" />
    <script type="text/javascript" language="javascript" src="/js/jquery.js?ver=1.6.6"></script>
    <script type="text/javascript" src="/js/highlight/highlight.min.js?ver=1.6.6"></script>
    <link rel="stylesheet" type="text/css" href="/js/highlight/styles/vs2015x.css?ver=1.6.6">
    <script type="text/javascript" language="javascript" src="/js/comm.js?ver=1.6.6"></script>
    <script type="text/javascript" language="javascript" src="/js/zt.js?ver=1.6.6"></script>
    <script type="text/javascript" charset="utf-8" src="/js/layer/layer.js?ver=1.6.6"></script>
    <link rel="alternate" media="only screen and(max-width: 640px)" href="http://m.itxst.com/tiptap/mv67fbzr.html" >
    <!--[if lte IE 9]>
    <script src="/js/respond/respond.js?ver=1.6.6"></script>
    <![endif]-->
</head>
<body>
    <div class="body"  >
        <div class="header">
            <div class="naver">
                <div class="logo">
                    <a href="/"><img src="/img/logov31.png" /></a>
                </div>
                <div class="naver-left">
                 <a href="/tiptap/tutorial.html">tiptap 中文文档</a>
                </div>
                <div class="naver-search">
                    <div class="naver-search-txt">
                        <input type="text" id="keyword" placeholder="Please enter the keyword" data-topic="tiptap">
                    </div>
                    <div class="naver-search-btn"><a href="javascript:void(0)" onclick="Search()">Search</a></div>
                </div>
                 <div class="naver-right"> 
                        <a href="/ag-grid/tutorial.html">AG-GRID</a> 
                        <a href="/tiptap/tutorial.html">Tiptap</a> 
                        <a href="/css-flex/tutorial.html">CSS-FLEX</a> 
                        <a href="/Bootstrap-Table/QuickStart.html">Bootstrap-Table</a> 
                </div>
            </div>
            <div class="path">
                
            </div>
        </div>
        <div class="clearfix"></div>
        <div class="pagew">
        <div class="page" >
            <div class="page-body">
                <div class="content-detail">
                    <h1>tiptap Table 表格扩展</h1>
               
               <p class="p">如果你想在 <b>tiptap</b> 编辑器设置显示表格，你可以是使用 <b>table</b> 扩展，它可以渲染成 <b>html</b> 的 <b>table</b> 标签，他可以合并单元格、添加删除行等等。</p><h2>Install 安装</h2><pre class="brush:js;toolbar:false"><code class="language-javascript">npm install @tiptap/extension-table @tiptap/extension-table-row @tiptap/extension-table-header @tiptap/extension-table-cell</code></pre><h2>Settings 配置</h2><p class="pe"><b>Table</b>&nbsp;的配置项。</p><pre class="brush:js;toolbar:false"><code class="language-javascript">Table.configure({
  HTMLAttributes: {
    class: 'my-custom-class',
  },
  //是否允许缩放
  resizable:false,
  //拖动时边框大小
  handleWidth:5,
  //单元格最小宽度
  cellMinWidth:25,
  View:"TableView",
  //最好一列是否自适应宽度
  lastColumnResizable:true,
  allowTableNodeSelection:false
})</code></pre><h2>Commands 命令</h2><p class="pe"><b>insertTable</b>&nbsp;插入表格，你可以制定插入多少行、多少列。</p><pre class="brush:js;toolbar:false"><code class="language-javascript">//插入表格
editor.commands.insertTable();
//插入3行3列和表头
editor.commands.insertTable({ rows: 3, cols: 3, withHeaderRow: true }</code></pre><p class="pe"><b>addColumnBefore</b>&nbsp;</p><pre class="brush:js;toolbar:false"><code class="language-javascript">//当前选中列之前插入一个列
editor.commands.addColumnBefore();</code></pre><p class="pe"><b>addColumnAfter</b>&nbsp;</p><pre class="brush:js;toolbar:false"><code class="language-javascript">//当前选中列之后插入一个列
editor.commands.addColumnAfter();</code></pre><p class="pe"><b>deleteColumn</b>&nbsp;</p><pre class="brush:js;toolbar:false"><code class="language-javascript">//删除当前选中的列
editor.commands.deleteColumn();</code></pre><p class="pe"><b>addRowBefore</b>&nbsp;</p><pre class="brush:js;toolbar:false"><code class="language-javascript">//选中行之上插入一行
editor.commands.addRowBefore();</code></pre><p class="pe"><b>addRowAfter</b>&nbsp;</p><pre class="brush:js;toolbar:false"><code class="language-javascript">//在选中行之后插入一行
editor.commands.addRowAfter();</code></pre><p class="pe"><b>deleteRow</b>&nbsp;</p><pre class="brush:js;toolbar:false"><code class="language-javascript">//删除选中行
editor.commands.deleteRow();</code></pre><p class="pe"><b>deleteTable</b>&nbsp;</p><pre class="brush:js;toolbar:false"><code class="language-javascript">//删除整个表格
editor.commands.deleteTable();</code></pre><p class="pe"><b>mergeCells</b>&nbsp;</p><pre class="brush:js;toolbar:false"><code class="language-javascript">//合表选中的单元格
editor.commands.mergeCells();</code></pre><p class="pe"><b>splitCell</b>&nbsp;</p><pre class="brush:js;toolbar:false"><code class="language-javascript">//拆分选中的单元格
editor.commands.splitCell();</code></pre><p class="pe"><b>toggleHeaderColumn</b>&nbsp;</p><pre class="brush:js;toolbar:false"><code class="language-javascript">//切换选中列为表头列
editor.commands.toggleHeaderColumn();</code></pre><p class="pe"><b>toggleHeaderRow</b>&nbsp;</p><pre class="brush:js;toolbar:false"><code class="language-javascript">//切换选中行为表头行
editor.commands.toggleHeaderRow();</code></pre><p class="pe"><b>toggleHeaderCell</b>&nbsp;</p><pre class="brush:js;toolbar:false"><code class="language-javascript">//切换选中单元格为表头
editor.commands.toggleHeaderCell();</code></pre><p class="pe"><b>mergeOrSplit</b>&nbsp;</p><pre class="brush:js;toolbar:false"><code class="language-javascript">//合并或拆分选中项
editor.commands.mergeOrSplit();</code></pre><p class="pe"><b>setCellAttribute</b>&nbsp;</p><pre class="brush:js;toolbar:false"><code class="language-javascript">editor.commands.setCellAttribute('customAttribute', 'value')
editor.commands.setCellAttribute('backgroundColor', '#000')</code></pre><p class="pe"><b>goToNextCell</b>&nbsp;</p><pre class="brush:js;toolbar:false"><code class="language-javascript">editor.commands.goToNextCell();</code></pre><p class="pe"><b>goToPreviousCell</b>&nbsp;</p><pre class="brush:js;toolbar:false"><code class="language-javascript">editor.commands.goToPreviousCell();</code></pre><p class="pe"><b>fixTables</b>&nbsp;</p><pre class="brush:js;toolbar:false"><code class="language-javascript">editor.commands.fixTables();</code></pre><p class="pe"><b>不使用表头</b>&nbsp;</p><pre class="brush:js;toolbar:false"><code class="language-javascript">// Table rows without table headers
TableRow.extend({
  content: 'tableCell*',
})</code></pre><h2>源代码</h2><p><a href="https://github.com/ueberdosis/tiptap/blob/main/packages/extension-table/" target="_blank" textvalue="table 源代码">table 源代码</a></p><p><a href="https://github.com/ueberdosis/tiptap/blob/main/packages/extension-table-row/" target="_blank" textvalue="table-row 源代码">table-row 源代码</a></p><p><a href="https://github.com/ueberdosis/tiptap/blob/main/packages/extension-table-cell/" target="_blank" textvalue="table-cell 源代码">table-cell 源代码</a></p><p><a href="https://github.com/ueberdosis/tiptap/blob/main/packages/extension-table-header/" target="_blank" textvalue="table-header 源代码">table-header 源代码</a></p><h2>在线例子</h2><p><a href="https://debug.itxst.com/static/tiptapdemo/index.html#table" target="_blank" textvalue="vue 在线例子">vue 在线例子</a></p><h2>Table 例子</h2><div class="mcode"><ul class=" list-paddingleft-2"><li><p class="mcode-curr">Vue 例子</p></li><li><p>React 例子</p></li><li><p>React CSS</p></li></ul><pre class="brush:html;toolbar:false"><code class="language-html">&lt;template&gt;
  &lt;div v-if="editor"&gt;
    &lt;button @click="editor.chain().focus().insertTable({ rows: 3, cols: 3, withHeaderRow: true }).run()"&gt;
      insertTable
    &lt;/button&gt;
    &lt;button @click="editor.chain().focus().addColumnBefore().run()"&gt;
      addColumnBefore
    &lt;/button&gt;
    &lt;button @click="editor.chain().focus().addColumnAfter().run()"&gt;
      addColumnAfter
    &lt;/button&gt;
    &lt;button @click="editor.chain().focus().deleteColumn().run()"&gt;
      deleteColumn
    &lt;/button&gt;
    &lt;button @click="editor.chain().focus().addRowBefore().run()"&gt;
      addRowBefore
    &lt;/button&gt;
    &lt;button @click="editor.chain().focus().addRowAfter().run()"&gt;
      addRowAfter
    &lt;/button&gt;
    &lt;button @click="editor.chain().focus().deleteRow().run()"&gt;
      deleteRow
    &lt;/button&gt;
    &lt;button @click="editor.chain().focus().deleteTable().run()"&gt;
      deleteTable
    &lt;/button&gt;
    &lt;button @click="editor.chain().focus().mergeCells().run()"&gt;
      mergeCells
    &lt;/button&gt;
    &lt;button @click="editor.chain().focus().splitCell().run()"&gt;
      splitCell
    &lt;/button&gt;
    &lt;button @click="editor.chain().focus().toggleHeaderColumn().run()"&gt;
      toggleHeaderColumn
    &lt;/button&gt;
    &lt;button @click="editor.chain().focus().toggleHeaderRow().run()"&gt;
      toggleHeaderRow
    &lt;/button&gt;
    &lt;button @click="editor.chain().focus().toggleHeaderCell().run()"&gt;
      toggleHeaderCell
    &lt;/button&gt;
    &lt;button @click="editor.chain().focus().mergeOrSplit().run()"&gt;
      mergeOrSplit
    &lt;/button&gt;
    &lt;button @click="editor.chain().focus().setCellAttribute('colspan', 2).run()"&gt;
      setCellAttribute
    &lt;/button&gt;
    &lt;button @click="editor.chain().focus().fixTables().run()"&gt;
      fixTables
    &lt;/button&gt;
    &lt;button @click="editor.chain().focus().goToNextCell().run()"&gt;
      goToNextCell
    &lt;/button&gt;
    &lt;button @click="editor.chain().focus().goToPreviousCell().run()"&gt;
      goToPreviousCell
    &lt;/button&gt;
    &lt;editor-content :editor="editor" /&gt;
  &lt;/div&gt;
&lt;/template&gt;
&lt;script&gt;
import Document from '@tiptap/extension-document'
import Gapcursor from '@tiptap/extension-gapcursor'
import Paragraph from '@tiptap/extension-paragraph'
import Table from '@tiptap/extension-table'
import TableCell from '@tiptap/extension-table-cell'
import TableHeader from '@tiptap/extension-table-header'
import TableRow from '@tiptap/extension-table-row'
import Text from '@tiptap/extension-text'
import { Editor, EditorContent } from '@tiptap/vue-3'

export default {
  components: {
    EditorContent,
  },
  data() {
    return {
      editor: null,
    }
  },
  mounted() {
    this.editor = new Editor({
      extensions: [
        Document,
        Paragraph,
        Text,
        Gapcursor,
        Table.configure({
          resizable: true,
        }),
        TableRow,
        TableHeader,
        TableCell,
      ],
      content: `
        &lt;table&gt;
          &lt;tbody&gt;
            &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th colspan="3"&gt;Description&lt;/th&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
              &lt;td&gt;Cyndi Lauper&lt;/td&gt;
              &lt;td&gt;singer&lt;/td&gt;
              &lt;td&gt;songwriter&lt;/td&gt;
              &lt;td&gt;actress&lt;/td&gt;
            &lt;/tr&gt;
          &lt;/tbody&gt;
        &lt;/table&gt;
      `,
    })
  },
  beforeUnmount() {
    this.editor.destroy()
  },
}
&lt;/script&gt;
&lt;style&gt;
.ProseMirror {
  table {
    border-collapse: collapse;
    table-layout: fixed;
    width: 100%;
    margin: 0;
    overflow: hidden;
    td,
    th {
      min-width: 1em;
      border: 2px solid #ced4da;
      padding: 3px 5px;
      vertical-align: top;
      box-sizing: border-box;
      position: relative;
      &gt; * {
        margin-bottom: 0;
      }
    }
    th {
      font-weight: bold;
      text-align: left;
      background-color: #f1f3f5;
    }
    .selectedCell:after {
      z-index: 2;
      position: absolute;
      content: "";
      left: 0; right: 0; top: 0; bottom: 0;
      background: rgba(200, 200, 255, 0.4);
      pointer-events: none;
    }
    .column-resize-handle {
      position: absolute;
      right: -2px;
      top: 0;
      bottom: -2px;
      width: 4px;
      background-color: #adf;
      pointer-events: none;
    }
    p {
      margin: 0;
    }
  }
}
.tableWrapper {
  padding: 1rem 0;
  overflow-x: auto;
}
.resize-cursor {
  cursor: ew-resize;
  cursor: col-resize;
}
&lt;/style&gt;</code></pre><pre class="brush:js;toolbar:false"><code class="language-javascript">import './styles.scss'

import Document from '@tiptap/extension-document'
import Gapcursor from '@tiptap/extension-gapcursor'
import Paragraph from '@tiptap/extension-paragraph'
import Table from '@tiptap/extension-table'
import TableCell from '@tiptap/extension-table-cell'
import TableHeader from '@tiptap/extension-table-header'
import TableRow from '@tiptap/extension-table-row'
import Text from '@tiptap/extension-text'
import { EditorContent, useEditor } from '@tiptap/react'
import React from 'react'

export default () =&gt; {
  const editor = useEditor({
    extensions: [
      Document,
      Paragraph,
      Text,
      Gapcursor,
      Table.configure({
        resizable: true,
      }),
      TableRow,
      TableHeader,
      TableCell,
    ],
    content: `
        &lt;table&gt;
          &lt;tbody&gt;
            &lt;tr&gt;
              &lt;th&gt;Name&lt;/th&gt;
              &lt;th colspan="3"&gt;Description&lt;/th&gt;
            &lt;/tr&gt;
            &lt;tr&gt;
              &lt;td&gt;Cyndi Lauper&lt;/td&gt;
              &lt;td&gt;singer&lt;/td&gt;
              &lt;td&gt;songwriter&lt;/td&gt;
              &lt;td&gt;actress&lt;/td&gt;
            &lt;/tr&gt;
          &lt;/tbody&gt;
        &lt;/table&gt;
      `,
  })
  if (!editor) {
    return null
  }
  return (
    &lt;&gt;
      &lt;button
        onClick={() =&gt; editor.chain().focus().insertTable({ rows: 3, cols: 3, withHeaderRow: true }).run()
        }
      &gt;
        insertTable
      &lt;/button&gt;
      &lt;button onClick={() =&gt; editor.chain().focus().addColumnBefore().run()}&gt;
        addColumnBefore
      &lt;/button&gt;
      &lt;button onClick={() =&gt; editor.chain().focus().addColumnAfter().run()}&gt;addColumnAfter&lt;/button&gt;
      &lt;button onClick={() =&gt; editor.chain().focus().deleteColumn().run()}&gt;deleteColumn&lt;/button&gt;
      &lt;button onClick={() =&gt; editor.chain().focus().addRowBefore().run()}&gt;addRowBefore&lt;/button&gt;
      &lt;button onClick={() =&gt; editor.chain().focus().addRowAfter().run()}&gt;addRowAfter&lt;/button&gt;
      &lt;button onClick={() =&gt; editor.chain().focus().deleteRow().run()}&gt;deleteRow&lt;/button&gt;
      &lt;button onClick={() =&gt; editor.chain().focus().deleteTable().run()}&gt;deleteTable&lt;/button&gt;
      &lt;button onClick={() =&gt; editor.chain().focus().mergeCells().run()}&gt;mergeCells&lt;/button&gt;
      &lt;button onClick={() =&gt; editor.chain().focus().splitCell().run()}&gt;splitCell&lt;/button&gt;
      &lt;button onClick={() =&gt; editor.chain().focus().toggleHeaderColumn().run()}&gt;
        toggleHeaderColumn
      &lt;/button&gt;
      &lt;button onClick={() =&gt; editor.chain().focus().toggleHeaderRow().run()}&gt;
        toggleHeaderRow
      &lt;/button&gt;
      &lt;button onClick={() =&gt; editor.chain().focus().toggleHeaderCell().run()}&gt;
        toggleHeaderCell
      &lt;/button&gt;
      &lt;button onClick={() =&gt; editor.chain().focus().mergeOrSplit().run()}&gt;mergeOrSplit&lt;/button&gt;
      &lt;button onClick={() =&gt; editor.chain().focus().setCellAttribute('colspan', 2).run()}&gt;
        setCellAttribute
      &lt;/button&gt;
      &lt;button onClick={() =&gt; editor.chain().focus().fixTables().run()}&gt;fixTables&lt;/button&gt;
      &lt;button onClick={() =&gt; editor.chain().focus().goToNextCell().run()}&gt;goToNextCell&lt;/button&gt;
      &lt;button onClick={() =&gt; editor.chain().focus().goToPreviousCell().run()}&gt;
        goToPreviousCell
      &lt;/button&gt;
      &lt;EditorContent editor={editor} /&gt;
    &lt;/&gt;
  )
}</code></pre><pre class="brush:css;toolbar:false;"><code class="language-css">.ProseMirror {
  table {
    border-collapse: collapse;
    margin: 0;
    overflow: hidden;
    table-layout: fixed;
    width: 100%;
    td,
    th {
      border: 2px solid #ced4da;
      box-sizing: border-box;
      min-width: 1em;
      padding: 3px 5px;
      position: relative;
      vertical-align: top;
      &gt; * {
        margin-bottom: 0;
      }
    }
    th {
      background-color: #f1f3f5;
      font-weight: bold;
      text-align: left;
    }
    .selectedCell:after {
      background: rgba(200, 200, 255, 0.4);
      content: "";
      left: 0;
      right: 0;
      top: 0;
      bottom: 0;
      pointer-events: none;
      position: absolute;
      z-index: 2;
    }
    .column-resize-handle {
      background-color: #adf;
      bottom: -2px;
      position: absolute;
      right: -2px;
      pointer-events: none;
      top: 0;
      width: 4px;
    }
    p {
      margin: 0;
    }
  }
}

.tableWrapper {
  padding: 1rem 0;
  overflow-x: auto;
}

.resize-cursor {
  cursor: ew-resize;
  cursor: col-resize;
}</code></pre></div>
 
               <h2>
    下载教程 Demo
</h2>
<p class="pe">
   本教程<b>Demo</b>的源码点击这里下载，<a href="https://img1.itxst.com/8/c/8c32fcdc12cb8847c62e405be8a73835.zip" target="_blank" textvalue="Tiptap Demo">Tiptap Demo</a>，下载完成后运行<b>npm i</b>初始化依赖包。
</p>
                </div>
                <div class="content-r">   <a href="/tiptap/tutorial.html" target="_self">
                     <img src="https://img1.itxst.com/0/9/09355b3592a0c16799b504a9f2a70303.png" alt="tiptap 中文文档" />
                    </a>                                                <a href="//www.itxst.com/vue-draggable/tutorial.html" target="_blank">
                                <img src="//img1.itxst.com/b/f/bf9af8368dfac84cd703ef54e1e89d14.png" alt="vue.draggable" />
                            </a>
 
                </div>
            </div>
            <div class="home-menu scroll">
                <div class="tree">
      <a data-level="1" class="leve-1   doc-1   " href="/tiptap/tutorial.html" title="tiptap 中文文档">快速入门</a>
      <a data-level="1" class="leve-1    arrow-1" href="/tiptap/configuration.html" title="Guide 向导">Guide 向导</a>
      <a data-level="1" class="leve-1    arrow-2" href="/tiptap/api.html" title="tiptap api 列表">API 列表</a>
      <a data-level="2" class="leve-2   doc-1   " href="/tiptap/methods.html" title="tiptap editor 方法">tiptap 方法</a>
      <a data-level="2" class="leve-2   doc-1   " href="/tiptap/attrs.html" title="tiptap 属性">tiptap 属性</a>
      <a data-level="2" class="leve-2   doc-1   " href="/tiptap/settings.html" title="titap 配置">titap 配置</a>
      <a data-level="2" class="leve-2    arrow-1" href="/tiptap/uaqmeemr.html" title="tiptap commands 命令">commands 命令</a>
      <a data-level="2" class="leve-2    arrow-2" href="/tiptap/363qzvqv.html" title="nodes 节点">nodes 节点</a>
      <a data-level="3" class="leve-3   doc-1   " href="/tiptap/blockquote.html" title="tiptap Blockquote 引用扩展">Blockquote 引用扩展</a>
      <a data-level="3" class="leve-3   doc-1   " href="/tiptap/avmrbq6f.html" title="tiptap BulletList 无序序列扩展">BulletList 无序序列扩展</a>
      <a data-level="3" class="leve-3   doc-1   " href="/tiptap/mrmuzbin.html" title="tiptap CodeBlock 代码块扩展">CodeBlock 代码块扩展</a>
      <a data-level="3" class="leve-3   doc-1   " href="/tiptap/ibyqqqzj.html" title="tiptap CodeBlockLowlight 代码高亮">CodeBlockLowlight 代码高亮</a>
      <a data-level="3" class="leve-3   doc-1   " href="/tiptap/effvybzr.html" title="tiptap Document 节点">Document 节点</a>
      <a data-level="3" class="leve-3   doc-1   " href="/tiptap/qnv3uzam.html" title="tiptap HardBreak 换行节点">HardBreak 换行节点</a>
      <a data-level="3" class="leve-3   doc-1   " href="/tiptap/yvymznqu.html" title="tiptap Heading 标题节点">Heading 标题节点</a>
      <a data-level="3" class="leve-3   doc-1   " href="/tiptap/eqbzrb7r.html" title="tiptap HorizontalRule 横线节点">HorizontalRule 横线节点</a>
      <a data-level="3" class="leve-3   doc-1   " href="/tiptap/z77rauyz.html" title="tiptap Image 图片扩展">Image 图片扩展</a>
      <a data-level="3" class="leve-3   doc-1   " href="/tiptap/bqjemyb3.html" title="tiptap ListItem 节点">ListItem 节点</a>
      <a data-level="3" class="leve-3   doc-1   " href="/tiptap/nnzya3qj.html" title="tiptap Mention 提及节点">Mention 提及节点</a>
      <a data-level="3" class="leve-3   doc-1   " href="/tiptap/3uqmeazz.html" title="tiptap OrderedList 有序列节点">OrderedList 有序列节点</a>
      <a data-level="3" class="leve-3   doc-1   " href="/tiptap/iyryuqn6.html" title="tiptap Paragraph 段落节点">Paragraph 段落节点</a>
      <a data-level="3" class="leve-3   doc-1    doc-2 " href="/tiptap/mv67fbzr.html" title="tiptap Table 表格扩展">Table 表格扩展</a>
      <a data-level="3" class="leve-3   doc-1   " href="/tiptap/bfmjvvbz.html" title="tiptap TaskList 任务列表扩展">TaskList 任务列表</a>
      <a data-level="3" class="leve-3   doc-1   " href="/tiptap/zqi7fvzf.html" title="tiptap TaskItem 任务列表项扩展">TaskItem 任务列表项</a>
      <a data-level="3" class="leve-3   doc-1   " href="/tiptap/ffffui3e.html" title="tiptap Text 节点">Text 节点</a>
      <a data-level="2" class="leve-2    arrow-1" href="/tiptap/marks.html" title="tiptap marks 标记">marks 标记</a>
      <a data-level="2" class="leve-2    arrow-1" href="/tiptap/extensions.html" title="tiptap extensions 扩展">extensions 扩展</a>
                 </div>
                 <div  class="clearfix"></div>
            </div>
        </div>
        <div class="clearfix"></div>
           <div class="footer">
© 2023 itxst.com All rights reserved.
</div>

<script>
var _hmt = _hmt || [];
(function() {
  var hm = document.createElement("script");
  hm.src = "https://hm.baidu.com/hm.js?7e15ed96eb8133218e99de8bc1f5cb61";
  var s = document.getElementsByTagName("script")[0];
  s.parentNode.insertBefore(hm, s);
})();
</script>
       </div>
    </div> 
</body>
</html>
